10 תשובות
תעשה 2 תיבות טקסט , ובעזרת JS תראה שלפחות לשדה אחד נכנס מידע ואז תעביר אותו בפילטר בהתאם לשדה - מספרים\אימייל
יש ב-JS ביטויים רגולריים. אתה יכול לבדוק בדיקה ראשונה אם הכל מספרים או לא. ובדיקה שניה אם זה תקין
למה ב-javascript ? כל כך פשוט לעקוף את זה ...
תעשה ב-php בדיקה אם המחרוזת היא אימייל תקין לפי זה (לחץ כאן), אם המחרוזת היא לא אימייל אז תבדוק אם היא מספר פלאפון ע"י regex(תגגל על זה), אם היא לא מספר פלאפון ולא אימייל אז פשוט תציג תדפיס שגיאה בטופס..
* Checks if the giving var is valid email address
*
* @param mixed $variable
* @return bool
*/
function is_email($variable)
{
return filter_var($variable, FILTER_VALIDATE_EMAIL) !== false;
}
/**
* Checks if the giving var is valid phone number
*
* @see http://www.php.net/manual/en/function.preg-match.php#90503
* @param string $subject
* @return bool
*/
function is_phone_number($subject)
{
$pattern = '/^(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})'
.'(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})'
.'[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$/'; // By corey [works at] effim [delete] .com
return preg_match($pattern, $subject) !== false;
}
if(is_email($input) || is_phone_number($input)) {
print 'all good';
} else {
print '$input must be Email address or Phone number';
}
JS או PHP זה בכלל לא קשור לעדיפות, כדאי ומומלץ לעשות בדיקות בשניהם.
בדיקה על ידי JS היא עבור מתן חיווי למשתמש, כך שיבחין שיש לו טעות עוד לפני השליחה לשרת.
בדיקה בPHP היא הבדיקה הנחוצה עבור הצרכים שלך.
אני השתמשתי בזה ככה זה אמור לבדוק מהמסד נכון? להתחברות? אם כן אז אתה צריך לצור שתי שאילתות של להוציא מהמסד כשהמספר פלאפון הוא השדה ואז בשאילתה השנייה אותו דבר רק על מייל ואז על כל שאילתה יוצר num_rows ובודק אם זה שווה ל1 אז...
אם השני שווה לאחד אז...
מקווה שעזרתי :)
יש לי עוד שאלה אחת.
איך אני בודק תקינות מספר טלפון?
מה ש-@ldbrgr הביא זה לא מתאים לתבנית מספר הטלפון/הנייד בארץ.
חיפשתי בגוגל אך לא מצאתי פתרון מתאים.
איך אני מייצר קוד REGEX שפשוט בודק אם המחרוזת מורכבת מספרות ו/או מקף(ים) ו/או סוגריים ו/או '+'.